
public class QuickSort {

	public static String[] quick_sort(String[] v, int ini, int fim) {
		int meio;

		if (ini < fim) {

			meio = partition(v, ini, fim);
			quick_sort(v, ini, meio);
			quick_sort(v, meio + 1, fim);
		}
		
		return v;
	}

	public static int partition(String[] v, int ini, int fim) {
		String pivo;
		int topo, i;
		pivo = v[ini];
		topo = ini;

		for (i = ini + 1; i < fim; i++) {
			if (v[i].compareTo(pivo) < 0) {
				v[topo] = v[i];
				v[i] = v[topo + 1];
				topo++;
			}
		}
		v[topo] = pivo;
		return topo;
	}

}
